﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;


namespace ErepIrcBot
{
    class Obywatel
    {
        string nick;

        int id;

        SortedDictionary<int, int> dmgWDniach = new SortedDictionary<int,int>();

        SortedDictionary<int, int> hityWDniach = new SortedDictionary<int,int>();

        public Obywatel(int id, string nick)
        {
            this.id = id;
            this.nick = nick;
        }


        public void dodajDzien(int numer, int dmg, int hity)
        {
            dmgWDniach[numer] = dmg;
            hityWDniach[numer] = hity;
        }

        public List<string> podsumowanie(List<int> dni)
        {
            List<string> napisy = new List<string>();
            napisy.Add("Aktywnosc gracza " + nick + "; donate: http://www.erepublik.com/en/economy/donate-money/" + id);
            int sumaHitow = 0;
            int sumaDmg = 0;
            foreach (KeyValuePair<int, int> para in dmgWDniach)
            {
                if (dni.Contains(para.Key)){
                    int hity = hityWDniach[para.Key];
                    napisy.Add("Dnia " + para.Key + ": " + para.Value + " dmg i " + hity + " hitow");
                    sumaHitow += hity;
                    sumaDmg += para.Value;
                }
            }
            napisy.Add("W sumie: " + sumaDmg + " dmg i " + sumaHitow + " hitow\n");
            if (sumaDmg > 0)
                return napisy;
            else
                return new List<string>();
        }

        public int sumaDmg(List<int> dni)
        {
            int sumadmg = 0;
            foreach (KeyValuePair<int, int> para in dmgWDniach)
            {
                if (dni.Contains(para.Key))
                {
                    sumadmg += para.Value;
                }
            }
            return sumadmg;
        }

        public string wypiszDof(List<int> dni, double kwotaZa1Dmg)
        {
            int sumadmg = sumaDmg(dni);
            if (sumadmg > 0)
            {
                int kwota = (int)Math.Floor(sumadmg * kwotaZa1Dmg);
                return nick + "; donate: http://www.erepublik.com/en/economy/donate-money/" + id + "; do wyplacenia: " + kwota + " PLN";
            }
            else
                return null;
            
        }
    }
}
